package com.swanclouds.model.chassis;

import com.swanclouds.model.DeviceEntity;
import com.swanclouds.model.ModelEntity;

import java.util.Map;

/**
 *  
 */
public interface PCIeDevices extends DeviceEntity {

    /**
     * 指定PCIe设备的ID
     * @return java.lang.String
     **/
    String getId();

    /**
     * 指定PCIe设备的名称
     * @return java.lang.String
     **/
    String getName();

    /**
     * 指定PCIe设备的型号
     * @return java.lang.String
     **/
    String getModel();

    /**
     * 指定PCIe设备的序列号
     * @return java.lang.String
     **/
    String getSerialNumber();

    /**
     * 指定PCIe设备的固件版本
     * @return java.lang.String
     **/
    String getFirmwareVersion();

    /**
     * 指定PCIe设备的描述
     * @return java.lang.String
     **/
    String getDescription();

    /**
     * 指定PCIe设备的生成厂商
     * @return java.lang.String
     **/
    String getManufacturer();

    /**
     * 厂商自定义信息
     * @return java.lang.String
     **/
    Map<String, Object> getOem();

    public interface Status extends ModelEntity {
        /**
         * PCIe设备使能状态
         * @return java.lang.String
         */
        String getState();

        /**
         * PCIe设备健康状态
         * @return java.lang.String
         */
        String getHealth();

        /**
         * PCIe设备的自定义健康状态
         * @return java.lang.String
         */
        String getSeverity();
    }

}
